package com.yuke.cloud.service.uac.dao;

import com.yuke.cloud.common.core.mybatis.MyMapper;
import com.yuke.cloud.service.api.uac.dto.AccEmployeeInfoDto;
import com.yuke.cloud.service.uac.dto.UserGroupDto;
import com.yuke.cloud.service.uac.entity.AccEmployeeGroup;
import com.yuke.cloud.service.uac.entity.AccUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AccEmployeeGroupMapper extends MyMapper<AccEmployeeGroup> {
    /**
     * List by group id list.
     *
     * @param groupId the group id
     *
     * @return the list
     */
    List<AccEmployeeGroup> listByGroupId(@Param("groupId") Long groupId);

    UserGroupDto selectEmployeeGroupInfoByUserId(@Param("userId")Long userId);

    AccUser selectUserInfoByUserId(@Param("userId")Long userId);

    int deleteExcludeSuperMng(@Param("currentGroupId") Long groupId, @Param("superManagerRoleId") Long superManagerRoleId, @Param("notDelUserIdList") List<Long> notDelUserIdList);

    int deleteExcludeSuperMngExAdmin(@Param("currentGroupId") Long groupId, @Param("adminUserId") Long adminUserId, @Param("notDelUserIdList") List<Long> notDelUserIdList);

    List<AccEmployeeInfoDto> selectEmployInfo(@Param("accEmployeeInfoDto") AccEmployeeInfoDto accEmployeeInfoDto);
}